package com.fjh.springboot_01.service;

import com.fjh.springboot_01.pojo.payment.PaymentOrder;
import java.util.List;
import java.util.Map;

public interface PaymentService {
    
    /**
     * 创建支付订单
     * @param bookingId 家教预约ID
     * @return 支付订单
     */
    PaymentOrder createPaymentOrder(Integer bookingId);
    
    /**
     * 通过课程安排ID创建支付订单
     * @param scheduleId 课程安排ID
     * @return 支付订单
     */
    PaymentOrder createPaymentOrderByScheduleId(Integer scheduleId);
    
    /**
     * 生成支付宝支付表单
     * @param orderNo 订单编号
     * @return 返回支付宝表单HTML
     */
    String createAlipayForm(String orderNo);
    
    /**
     * 处理支付宝异步通知
     * @param params 支付宝回调参数
     * @return 处理结果
     */
    boolean handleAlipayNotify(Map<String, String> params);
    
    /**
     * 查询订单支付状态
     * @param orderNo 订单编号
     * @return 支付订单
     */
    PaymentOrder getPaymentOrderByOrderNo(String orderNo);
    
    /**
     * 获取学生的支付订单列表
     * @param studentId 学生ID
     * @return 支付订单列表
     */
    List<PaymentOrder> getStudentPaymentOrders(Integer studentId);
    
    /**
     * 获取教师的收款订单列表
     * @param teacherId 教师ID
     * @return 支付订单列表
     */
    List<PaymentOrder> getTeacherPaymentOrders(Integer teacherId);
    
    /**
     * 手动更新订单支付状态（临时解决方案）
     * @param orderNo 订单编号
     * @param tradeNo 支付宝交易号
     * @return 更新的行数
     */
    int manualUpdatePaymentStatus(String orderNo, String tradeNo);
} 